#ifndef LIB_GEOUTILS_SEGMENT_H
#define LIB_GEOUTILS_SEGMENT_H
#include "libGeoutils/shape/Coord.h"

namespace geo {
namespace shape {
class GEOUTILS_EXPORT Segment : public geo::prop::Properties
{
public:
	using sptr = std::shared_ptr<Segment>;
	using csptr = std::shared_ptr<const Segment>;

	Segment();
	Segment(Coord::sptr start, Coord::sptr end);
	virtual ~Segment();

	void setStart(Coord::sptr start);
	Coord::sptr getStart() const;
	void setEnd(Coord::sptr end);
	Coord::sptr getEnd() const;

	bool to_string(std::string& out_str) const override;
	bool to_json(std::string& out_str) const override;
	bool from_json(const std::string& in_str) override;

protected:
	Coord::sptr mStart;
	Coord::sptr mEnd;

private:

};

} //! shape namespace
} //! geo namespace

#endif // !LIB_GEOUTILS_SEGMENT_H
